kaf24@firebug.cl.cam.ac.uk [Thu, 29 Dec 2005 16:53:22 +0000 (17:53 +0100)]
Reset the stack pointer on every cpu early during bootstrap.
Ensures we do not overlap with the cpu_info structure.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 29 Dec 2005 16:37:08 +0000 (17:37 +0100)]
Initialise grant tables via core_initcall so that it happens
suitably early during the boot process.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 29 Dec 2005 15:59:12 +0000 (16:59 +0100)]
Various fixes to Xen stack management. Ensure the cpu0_stack
is always sufficiently aligned (requires some linker script
tricks). Small fixes to show_trace() and ensure that Xen
stack pointers are always below the 'struct cpu_info' region.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 29 Dec 2005 14:47:23 +0000 (15:47 +0100)]
Add auto-destructing per-domain rangeset data structure,
for representing sets of contiguous numeric ranges. This
will be used for representing permissions lists (e.g.,
io memory, io ports, irqs).
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 28 Dec 2005 15:23:42 +0000 (16:23 +0100)]
Fix iobmp_mask setup when permitting a domU access to
I/O port ranges.
Signed-off-by: Ryan Wilson <hap9@epoch.ncsc.mil>
kaf24@firebug.cl.cam.ac.uk [Wed, 28 Dec 2005 14:17:04 +0000 (15:17 +0100)]
Fix a leak occurring at netif_map(). The problem raised after allocating
both {rx,tx}_comms_area, and one (and just one) of them failed. As we
were
doing a single test for both, returning would leave one of them
allocated.
Signed-off-by: Glauber de Oliveira Costa <glommer@br.ibm.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 28 Dec 2005 14:14:23 +0000 (15:14 +0100)]
Set up X11 authorization when a VMX domain uses SDL.
Signed-off-by: Hiromichi Itou <ito@begi.net>
kaf24@firebug.cl.cam.ac.uk [Wed, 28 Dec 2005 14:07:43 +0000 (15:07 +0100)]
Reorganizes network frontend device unregister and removal, so that
occur in the right order and succeed.
Now on Closing state we:
- stop queue
- unbind irq
- unregister the device
On removal:
- end foreign access to TX and RX pages (we cannot do this before)
- free_netdev, doing the last stage of destroying an allocated device
Makes xm-test network "03_attach_detach_multiple_pos" pass:
http://xmtest.dague.org/cgi-bin/display?view=single&testid=1068
Signed-off-by: Murillo F. Bernardes <mfb@br.ibm.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 28 Dec 2005 14:07:16 +0000 (15:07 +0100)]
Missing file from previous changeset.
kaf24@firebug.cl.cam.ac.uk [Wed, 28 Dec 2005 13:55:55 +0000 (14:55 +0100)]
Fix uncleaned vif backend devices when frontend does not finish
initialization properly.
Signed-off-by: Murillo F. Bernardes <mfb@br.ibm.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 28 Dec 2005 11:29:15 +0000 (12:29 +0100)]
If netfront fails to allocate a receive skbuff, push all pending
skbuffs out onto the shared ring. If there are no skbuffs to push,
schedule a timer to try again later. This will avoid interface
lockups in low-memory conditions.
Signed-off-by: Keir Fraser <keir@xensource.com>
vhanquez@kneesa.uk.xensource.com [Tue, 27 Dec 2005 10:40:33 +0000 (10:40 +0000)]
Prevent vbd frontend from oopsing if the underlying device doesn't exist.
Signed-off-by: Horms <horms@verge.net.au>
Signed-off-by: Vincent Hanquez <vincent@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Fri, 23 Dec 2005 17:28:33 +0000 (18:28 +0100)]
Generic x86 emulator now properly supports 16-bit addressing
by narrowing accesses to SI/DI/SP registers. Also supports
real-mode addressing by shifting and adding the appropriate
segment register for certain stack and string operations
where the effective address is not already known.
todo: Stack operations should have address size specified
by B bit in stack segment descriptor, not by default address
size or address-size override. Probably nothing depends on
the proper behaviour though.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Fri, 23 Dec 2005 15:42:46 +0000 (16:42 +0100)]
Modify CR0 access emulation -- return physical CR0 (except
for TS) and allow only the same physical flags to be written
back to CR0 by a guest.
Add write-to-CR4 emulation, but check that the write does not
modify any CR4 flags.
Signed-off-by: Keir Fraser <keir@xensource.com>
Ian.Campbell@xensource.com [Fri, 23 Dec 2005 09:12:41 +0000 (09:12 +0000)]
Only build xenctx on x86_32 and x86_64.
Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
Ian.Campbell@xensource.com [Thu, 22 Dec 2005 16:15:33 +0000 (16:15 +0000)]
Merge.
emellor@leeni.uk.xensource.com [Thu, 22 Dec 2005 15:38:10 +0000 (15:38 +0000)]
This patch fixes a bug/typo of main.py.
1. show option "-c" of help of xm dmesg
2. fix value of parameter of arg_check of xm log
3. fix aliases of vbd-create and vbd-destroy
Signed-off-by Yoshinori Katase <y_katase@soft.fujitsu.com>
cl349@firebug.cl.cam.ac.uk [Thu, 22 Dec 2005 14:50:06 +0000 (15:50 +0100)]
Remove xen specific bug() implementation -- the regular one works just fine.
From: "Jan Beulich" <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Ian.Campbell@xensource.com [Thu, 22 Dec 2005 14:33:19 +0000 (14:33 +0000)]
Add support to xenctx for printing stack traces on x86_32 and x86_64.
To support this add xc_translate_foreign_address to libxc. This function
walks page tables and translates virtual addresses using a given domain
and vcpu page table.
Signed-off-by: Ian Campbell <Ian.Campbell@XenSource.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 19:18:19 +0000 (20:18 +0100)]
Remove acpi_count_madt functions. Only appear to be used
for diagnostic tracing in xen/ia64.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 19:17:22 +0000 (20:17 +0100)]
Remove unused local variables (from removed REASIGN_PAGE
function).
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 18:52:00 +0000 (19:52 +0100)]
Merge with xen-ia64-unstable.hg.
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 18:10:53 +0000 (19:10 +0100)]
Remove obsolete MMUEXT_REASSIGN_PAGE. It's not used by
anyone and is superceded by grant transfers.
Signed-off-by: Keir Fraser <keir@xensource.com>
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 17:56:19 +0000 (11:56 -0600)]
Merge
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 17:45:43 +0000 (18:45 +0100)]
Fix gnttab_release_mappings -- it doesn't need to drop
page refcnts for host mappings as they are already
destroyed by put_page_from_l1e(). Also call
gnttab_release_mappings later (after destroying
page-table references) and from common code rather than
arch/x86.
Also a few other misc gnttab cleanups.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 17:25:34 +0000 (18:25 +0100)]
Increment page reference count for every host/device
mapping created via a grant reference, rather than one
increment for all uses of a single grant reference.
This avoids a nasty situation in put_page_from_l1e()
where we cannot reliably determine whether a mapping was
created via a grant reference and so we must always
decrement the mapped page's reference count.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 17:16:31 +0000 (18:16 +0100)]
Declare kasprintf before use.
Signed-off-by: Keir Fraser <keir@xensource.com>
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 16:30:10 +0000 (10:30 -0600)]
Disable chatty translate_domain_pte messages for normal grant table traffic
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 15:33:45 +0000 (09:33 -0600)]
Facilitate to debug VTI-domain issue.
Signed-off-by Anthony Xu <anthony.xu@intel.com>
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 15:31:05 +0000 (09:31 -0600)]
Support domU initrd and cmdline (previous cset also)
Signed-off-by: Akio Takebe <takebe_akio@jp.fujitsu.com>
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 15:07:09 +0000 (09:07 -0600)]
diff -r
545ba1b126ca tools/libxc/xc_linux_build.c
--- a/tools/libxc/xc_linux_build.c Tue Dec 20 20:11:17 2005
+++ b/tools/libxc/xc_linux_build.c Wed Dec 21 11:50:08 2005
@@ -296,9 +296,13 @@
unsigned long *page_array = NULL;
struct load_funcs load_funcs;
struct domain_setup_info dsi;
+ unsigned long vinitrd_start;
+ unsigned long vinitrd_end;
+ unsigned long v_end;
unsigned long start_page, pgnr;
start_info_t *start_info;
int rc;
+ unsigned long i;
rc = probeimageformat(image, image_size, &load_funcs);
if ( rc != 0 )
@@ -310,11 +314,13 @@
if ( rc != 0 )
goto error_out;
- dsi.v_start = round_pgdown(dsi.v_start);
- dsi.v_end = round_pgup(dsi.v_end);
+ dsi.v_start = round_pgdown(dsi.v_start);
+ vinitrd_start = round_pgup(dsi.v_end);
+ vinitrd_end = vinitrd_start + initrd_len;
+ v_end = round_pgup(vinitrd_end);
start_page = dsi.v_start >> PAGE_SHIFT;
- pgnr = (dsi.v_end - dsi.v_start) >> PAGE_SHIFT;
+ pgnr = (v_end - dsi.v_start) >> PAGE_SHIFT;
if ( (page_array = malloc(pgnr * sizeof(unsigned long))) == NULL )
{
PERROR("Could not allocate memory");
@@ -326,9 +332,38 @@
PERROR("Could not get the page frame list");
goto error_out;
}
+
+#define _p(a) ((void *) (a))
+
+ printf("VIRTUAL MEMORY ARRANGEMENT:\n"
+ " Loaded kernel: %p->%p\n"
+ " Init. ramdisk: %p->%p\n"
+ " TOTAL: %p->%p\n",
+ _p(dsi.v_kernstart), _p(dsi.v_kernend),
+ _p(vinitrd_start), _p(vinitrd_end),
+ _p(dsi.v_start), _p(v_end));
+ printf(" ENTRY ADDRESS: %p\n", _p(dsi.v_kernentry));
(load_funcs.loadimage)(image, image_size, xc_handle, dom, page_array,
&dsi);
+
+ /* Load the initial ramdisk image. */
+ if ( initrd_len != 0 )
+ {
+ for ( i = (vinitrd_start - dsi.v_start);
+ i < (vinitrd_end - dsi.v_start); i += PAGE_SIZE )
+ {
+ char page[PAGE_SIZE];
+ if ( gzread(initrd_gfd, page, PAGE_SIZE) == -1 )
+ {
+ PERROR("Error reading initrd image, could not");
+ goto error_out;
+ }
+ xc_copy_to_domain_page(xc_handle, dom,
+ page_array[i>>PAGE_SHIFT], page);
+ }
+ }
+
*pvke = dsi.v_kernentry;
@@ -358,6 +393,13 @@
start_info->store_evtchn = store_evtchn;
start_info->console_mfn = nr_pages - 1;
start_info->console_evtchn = console_evtchn;
+ if ( initrd_len != 0 )
+ {
+ ctxt->initrd.start = vinitrd_start;
+ ctxt->initrd.size = initrd_len;
+ }
+ strncpy((char *)ctxt->cmdline, cmdline, IA64_COMMAND_LINE_SIZE);
+ ctxt->cmdline[IA64_COMMAND_LINE_SIZE-1] = '\0';
munmap(start_info, PAGE_SIZE);
free(page_array);
diff -r
545ba1b126ca xen/arch/ia64/xen/dom_fw.c
--- a/xen/arch/ia64/xen/dom_fw.c Tue Dec 20 20:11:17 2005
+++ b/xen/arch/ia64/xen/dom_fw.c Wed Dec 21 11:50:08 2005
@@ -861,9 +861,14 @@
bp->console_info.orig_x = 0;
bp->console_info.orig_y = 24;
bp->fpswa = 0;
- bp->initrd_start = (dom0_start+dom0_size) -
- (PAGE_ALIGN(ia64_boot_param->initrd_size) + 4*1024*1024);
- bp->initrd_size = ia64_boot_param->initrd_size;
+ if (d == dom0){
+ bp->initrd_start = (dom0_start+dom0_size) -
+ (PAGE_ALIGN(ia64_boot_param->initrd_size) + 4*1024*1024);
+ bp->initrd_size = ia64_boot_param->initrd_size;
+ }else{
+ bp->initrd_start = d->arch.initrd_start;
+ bp->initrd_size = d->arch.initrd_len;
+ }
printf(" initrd start %0xlx", bp->initrd_start);
printf(" initrd size %0xlx", bp->initrd_size);
diff -r
545ba1b126ca xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c Tue Dec 20 20:11:17 2005
+++ b/xen/arch/ia64/xen/domain.c Wed Dec 21 11:50:08 2005
@@ -297,6 +297,9 @@
*regs = c->regs;
d->arch.sys_pgnr = c->sys_pgnr;
+ d->arch.initrd_start = c->initrd.start;
+ d->arch.initrd_len = c->initrd.size;
+ d->arch.cmdline = c->cmdline;
new_thread(v, regs->cr_iip, 0, 0);
v->vcpu_info->arch.evtchn_vector = c->vcpu.evtchn_vector;
@@ -365,7 +368,7 @@
regs->r28 = dom_fw_setup(d,saved_command_line,256L);
else {
regs->ar_rsc |= (2 << 2); /* force PL2/3 */
- regs->r28 = dom_fw_setup(d,"nomca nosmp xencons=tty0 console=tty0 root=/dev/hda1",256L); //FIXME
+ regs->r28 = dom_fw_setup(d,d->arch.cmdline,256L);
}
VCPU(v, banknum) = 1;
VCPU(v, metaphysical_mode) = 1;
diff -r
545ba1b126ca xen/include/asm-ia64/domain.h
--- a/xen/include/asm-ia64/domain.h Tue Dec 20 20:11:17 2005
+++ b/xen/include/asm-ia64/domain.h Wed Dec 21 11:50:08 2005
@@ -38,6 +38,9 @@
u64 image_len;
u64 entry;
#endif
+ unsigned long initrd_start;
+ unsigned long initrd_len;
+ char *cmdline;
};
#define xen_vastart arch.xen_vastart
#define xen_vaend arch.xen_vaend
diff -r
545ba1b126ca xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h Tue Dec 20 20:11:17 2005
+++ b/xen/include/public/arch-ia64.h Wed Dec 21 11:50:08 2005
@@ -276,6 +276,12 @@
unsigned long start_info_pfn;
} arch_shared_info_t;
+typedef struct {
+ unsigned long start;
+ unsigned long size;
+} arch_initrd_info_t;
+
+#define IA64_COMMAND_LINE_SIZE 512
typedef struct vcpu_guest_context {
#define VGCF_FPU_VALID (1<<0)
#define VGCF_VMX_GUEST (1<<1)
@@ -289,6 +295,8 @@
cpu_user_regs_t regs;
arch_vcpu_info_t vcpu;
arch_shared_info_t shared;
+ arch_initrd_info_t initrd;
+ char cmdline[IA64_COMMAND_LINE_SIZE];
} vcpu_guest_context_t;
#endif /* !__ASSEMBLY__ */
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 14:53:40 +0000 (08:53 -0600)]
This patch is intended to correct the number of CPUs.
Our IPF machines are the following configurations.
- Total logical cpus = 16
-- 4 sockets
-- 2 cores
-- 2 threads
I changed the setting of BIOS, and invalidated the hyperthread, and I built Xen with NR_CPUS=8.
As a result, it became like attached file xendmesg1.txt.
- Available cpus 3
- Total cpus 8
Next, I built Xen with NR_CPUS=16.
As a result, it became like attached file xendmesg2.txt.
- Available cpus 8
- Total cpus 16
I thought not to match the analysis of the lsapic entry to the value of NR_CPUS.
It is an outline of patch as follows.
1. Count up the lsapic entry by using acpi_table_count_madt()/acpi_table_count_madt_family().
2. Call acpi_parse_lsapic() by using the number of lsapic entries.
3. Count up the available_cpus by using acpi_parse_lsapic(), however NR_CPUS is not exceeded.
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Best Regards,
Kan
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 14:49:31 +0000 (08:49 -0600)]
New default config file that works on both tiger4 and HP boxes
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 14:40:16 +0000 (08:40 -0600)]
Fix smp_processor_id to be linked to correct processor id under vcpu, which is
the exact one updated by scheduler. Or else easy to think how things get
messed under SMP environment. One phenomenon observed is about softirq.
Exit path on CPU1 checks pending indicator by local_cpu_data, and then
goto do_softirq if pending true. However do_softirq uses cpu_data(cpu)
to query pending bit again. Cpu index is aquired from smp_processor_id,
with thread_info->cpu not cared by scheduler. Finally do_softirq on CPU1
tries to operate percpu data on CPU0 then.
Also disable several prints within critical path, like sending IPI. Due to
slow serial speed, this will slow down overall performance heavily since
event channels among CPUs are in traffic.
This patch is necessary for host SMP.
Signed-off-by Kevin Tian <kevin.tian@intel.com>
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 14:36:03 +0000 (08:36 -0600)]
Certain faults should not be reflected if caused with priv=0
Signed-off-by Kevin Tian <kevin.tian@intel.com>
djm@kirby.fc.hp.com [Wed, 21 Dec 2005 14:27:09 +0000 (08:27 -0600)]
More pal_flush_cache calls for split cache machines (by Anthony Xu)
kaf24@firebug.cl.cam.ac.uk [Wed, 21 Dec 2005 13:29:23 +0000 (14:29 +0100)]
Add support for MOVSX/MOVSXD/MOVZX (move-with-extend)
instructions to the generic x86 emulator. Also add
preliminary support for 16-bit addressing: decode the
ModR/M byte properly but still need to access and update
implicit memory operands (esp,esi,edi) with correct width.
Work is also needed to support real-mode addressing.
Signed-off-by: Keir Fraser <keir@xensource.com>
vhanquez@kneesa.uk.xensource.com [Wed, 21 Dec 2005 11:14:37 +0000 (11:14 +0000)]
remove duplicate code to allocate a string ala printf (using kasprintf)
Signed-off-by: Vincent Hanquez <vincent@xensource.com>
djm@kirby.fc.hp.com [Tue, 20 Dec 2005 20:11:17 +0000 (14:11 -0600)]
Important domU/vbd fix. Reserve top granule of machine memory for dom0.
kaf24@firebug.cl.cam.ac.uk [Tue, 20 Dec 2005 17:45:29 +0000 (18:45 +0100)]
Remove FIX_RSDP_PAGE. Access RSDP via the 'isamap' of low 1MB.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 20 Dec 2005 17:34:58 +0000 (18:34 +0100)]
Remove automatic I/O-fault handling in XenLinux. It's now
handled by Xen itself.
Signed-off-by: Keir Fraser <keir@xensource.com>
emellor@leeni.uk.xensource.com [Tue, 20 Dec 2005 17:16:24 +0000 (17:16 +0000)]
Merged.
emellor@leeni.uk.xensource.com [Tue, 20 Dec 2005 17:16:15 +0000 (17:16 +0000)]
Changed UUID / Xen handle formatting to be compatible with the OSF DCE UUIDs.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 20 Dec 2005 16:55:20 +0000 (17:55 +0100)]
Allow unknown NMIs to be propagated to domain0 via new
VIRQ_NMI. Also simplify x86_32 NMI handling -- there's
no need to greedily consume IO/parity errors in
assembly code as they can be deferred without causing
an interrupt storm (the NMI pin is always edge-triggered
even though the sources are level-asserted).
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 20 Dec 2005 11:55:19 +0000 (12:55 +0100)]
Add sound blaster support to VMX device model.
Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 20 Dec 2005 11:52:38 +0000 (12:52 +0100)]
Currently there is no generic configure file to compile xenlinux on
ia64, since there're several different system types like HP-ZX, DIG,
etc. Current Makefile can't meet this need and default one
(xen0_defconfig_ia64) is only for HP-ZX type. Hence, this patch can
append an additional param to configuration file name to differentiate
system types when make.
Signed-off-by Zhang Xiantao <xiantao.zhang@intel.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 20 Dec 2005 11:50:09 +0000 (12:50 +0100)]
This patch fix several issue to support >2G 64bit vmx guest in IA-32e
platform, it includes:
1) One fix on xc_vmx_build.c
2) Change ram_size/phys_ram_size in qemu from int to uint64_t
3) One fix on pcnet unsigned short to unsigned long conversion.
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
Signed-off-by: Xin Li <xin.b.li@intel.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 20 Dec 2005 11:46:56 +0000 (12:46 +0100)]
Remove direct references to frame_table array. Use
pfn_to_page (or page_to_pfn) instead.
Signed-off-by: Keir Fraser <keir@xensource.com>
djm@kirby.fc.hp.com [Mon, 19 Dec 2005 21:18:54 +0000 (15:18 -0600)]
Fix simulator boot (uses old bootparam format with no initrd)
kaf24@firebug.cl.cam.ac.uk [Sun, 18 Dec 2005 19:29:43 +0000 (20:29 +0100)]
Avoid div-by-zero crash if vmx guest specifies bogus timer
divisor.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
kaf24@firebug.cl.cam.ac.uk [Sun, 18 Dec 2005 19:27:42 +0000 (20:27 +0100)]
Allow a domain to specify DOMID_SELF to DOM0_GETDOMAININFO dom0_op.
This is primarily useful to allow a privileged domain to determine
its domid, where the preferred method of quering xenstore cannot be
used.
Signed-off-by: joseph.cihula@intel.com
kaf24@firebug.cl.cam.ac.uk [Sat, 17 Dec 2005 01:11:54 +0000 (02:11 +0100)]
Small fix to the error-return path after calling
__copy_to_user in the swiotlb sync function. We cannot
immediately exit the sync function as there may be tail work
to do (e.g., kunmap_atomic). In fact, doing nothing is the
right thing to do and is sufficient to avoid compiler
warnings about not checking the __copy_to_user return value.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Fri, 16 Dec 2005 23:43:00 +0000 (00:43 +0100)]
Work aroudn swiotlb issue where a read-only host buffer is
mapped for DMA_BIDIRECTIONAL streaming access by certain
low-level drivers. This causes an unnecessary copy to the
host buffer that previously caused a fatal kernel page fault.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Fri, 16 Dec 2005 23:28:27 +0000 (00:28 +0100)]
This patch removes the GPL licence from the acm public header files so
that they match the BSD licence in xen/include/public.
Signed-off by: Reiner Sailer <sailer@us.ibm.com>
kaf24@firebug.cl.cam.ac.uk [Fri, 16 Dec 2005 17:58:21 +0000 (18:58 +0100)]
Hide 64bit-mode feature on i386 hypervisor.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
kaf24@firebug.cl.cam.ac.uk [Fri, 16 Dec 2005 17:54:57 +0000 (18:54 +0100)]
Move some useful cryptographic enveloping code into their own
functions so they can be used by other parts of the VTPM code.
Signed-off-by: Vinnie Scarlata <vincent.r.scarlata@intel.com>
stekloff@elm3b216.beaverton.ibm.com [Fri, 16 Dec 2005 11:51:06 +0000 (11:51 +0000)]
Changed create_disk_image to default to making "disk.img", which is what
xm-test is looking for by default.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
stekloff@elm3b216.beaverton.ibm.com [Fri, 16 Dec 2005 11:50:27 +0000 (11:50 +0000)]
Added information for running xm-test in HVM / VMX mode.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
nivedita@hex [Fri, 16 Dec 2005 11:46:58 +0000 (11:46 +0000)]
Xend http access turned off by default.
Signed-off-by: Nivedita Singhvi (niv@us.ibm.com)
kaf24@firebug.cl.cam.ac.uk [Fri, 16 Dec 2005 03:57:27 +0000 (04:57 +0100)]
Slight fix to BIOS e820 bug workaround. Remove the check
for whether e820 list is below 1MB: all bootloaders place
it below 1MB so teh check is ineffective and, in any case,
SYSLINUX has the same issue as GRUB (does not pre-initialize
the memory area that e820 function writes to).
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Fri, 16 Dec 2005 03:11:41 +0000 (04:11 +0100)]
Work around a nasty BIOS/GRUB bug which causes fields in
the e820 map to not be initialized to zero when they should be.
Signed-off-by: Keir Fraser <keir@xensource.com>
chris@ubuntu.eng.hq.xensource.com [Thu, 15 Dec 2005 23:17:13 +0000 (16:17 -0700)]
Add and use write_ldt_entry, as seen in later linux kernel versions.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
djm@kirby.fc.hp.com [Thu, 15 Dec 2005 23:17:06 +0000 (17:17 -0600)]
Turn off debug output for NaTpage consumption when ifa==0.
In RHEL4, __strcpy_from_user seems to do this a lot (legally)
and the massive debug output may hide other errors.
djm@kirby.fc.hp.com [Thu, 15 Dec 2005 22:17:04 +0000 (16:17 -0600)]
Turn off ia64_pal_cache_flush for domU (temp, until failure understood)
djm@kirby.fc.hp.com [Thu, 15 Dec 2005 22:10:22 +0000 (16:10 -0600)]
Remove some unused VTI code segments
Signed-off-by Anthony Xu <anthony.xu@intel.com>
djm@kirby.fc.hp.com [Thu, 15 Dec 2005 22:09:19 +0000 (16:09 -0600)]
Cleanup VTLB code
Signed-off-by Anthony Xu <anthony.xu@intel.com>
djm@kirby.fc.hp.com [Thu, 15 Dec 2005 22:07:47 +0000 (16:07 -0600)]
Under some specific conditions, dom0 will lose guest timer interrupt.
Signed-off-by Anthony Xu <anthony.xu@intel.com>
Signed-off-by Kevin Tian <kevin.tian@intel.com>
The reason is that Xen/ia64 will try to pend guest timer interrupt to dom0
within each machine timer interrupt handler. To avoid duplicated delivery,
domain_itm_last recorded domain_itm of last injection. If two are identical,
it means interrupt injected but guest has not set new itm value. Or else
corresponding pending irr bit will be turned on. That works in most cases.
However currently guest linux may try to set itm multiple times within one
handler before turn on psr.i again. Among first few settings, new guest timer
interrupt may be pended. Then once guest linux enables interrupt, a new
timer interrupt will be injected immediately. However this injection may have
itc still smaller than the domain_itm set at the last round of last handle.
In this case, guest linux will set same domain_itm as last again. However
since domain_itm_last already equals to domain_itm at last read ivr, later
no guest timer interrupt can be injected any more since Xen always thinks
an instance already injected without guest's response.
Attahced patch fixed this issue by adding sanity check upon guest timer
vector when deciding to inject interrupt into dom0. We always compare current
itc with latest domain_itm that guest really wants. So if itc < domain_itm
at this point, we simply clear the pending bit and no injection.
There's also a small fix to vcpu_read_ivr, where domain_itm_last should
be updated before clearing irr bit. Or els a small window still remains
to add a duplicate interrupt.
djm@kirby.fc.hp.com [Thu, 15 Dec 2005 20:51:10 +0000 (14:51 -0600)]
Small patch to avoid a stack overflow (VTI only).
Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
kaf24@firebug.cl.cam.ac.uk [Thu, 15 Dec 2005 20:50:12 +0000 (21:50 +0100)]
Add debugging flag for domains to make domu debugging a run-time option
Signed-off-by: Kip Macy kmacy@fsmware.ckm
kaf24@firebug.cl.cam.ac.uk [Thu, 15 Dec 2005 20:02:21 +0000 (21:02 +0100)]
Add MP debug support to gdbserver.
Signed-off-by: Kip Macy <kip.macy@gmail.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 15 Dec 2005 19:46:08 +0000 (20:46 +0100)]
Remove unnecessary statement in evtchn_do_upcall.
Signed-off-by: Xin Li <xin.b.li@intel.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 15 Dec 2005 19:43:44 +0000 (20:43 +0100)]
Unmap io shared page only if it is properly initialized.
Signed-off-by: Xin Li <xin.b.li@intel.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 15 Dec 2005 19:42:09 +0000 (20:42 +0100)]
Check for existence of VLAPIC before relinquishing it,
or a vmx guest can die very early.
Signed-off-by: Xin Li <xin.b.li@intel.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 15 Dec 2005 19:38:44 +0000 (20:38 +0100)]
Clear all shadow caches when return to real mode from protect mode.
So that, if OS modify some page tables in real mode and then
return to protect mode, no outdated shadow table be used because
out of sync machanism do not work in real mode.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
kaf24@firebug.cl.cam.ac.uk [Thu, 15 Dec 2005 19:35:32 +0000 (20:35 +0100)]
vmx_assist xen interface header is BSD-licensed.
Signed-off-by: Leendert Van Doorn <leendert@us.ibm.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
emellor@leeni.uk.xensource.com [Thu, 15 Dec 2005 18:38:49 +0000 (18:38 +0000)]
Split talk_to_otherend into two pieces, one for getting the otherend details,
and one for registering the watch on the otherend's path. This means that we
get the fix intended by xen-unstable changeset 8370:
39a616126104 (i.e. we only
register the watch once drv->probe() has succeeded), but without breaking block
devices.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
emellor@leeni.uk.xensource.com [Thu, 15 Dec 2005 13:55:05 +0000 (13:55 +0000)]
Replace calls to deprecated xm set-vcpus with calls to new shiny xm vcpu-set.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
emellor@leeni.uk.xensource.com [Thu, 15 Dec 2005 13:49:19 +0000 (13:49 +0000)]
Merged.
emellor@leeni.uk.xensource.com [Thu, 15 Dec 2005 13:49:07 +0000 (13:49 +0000)]
Fix block_attach_shared tests. When the sharing check succeeds, the domain
is created but left paused, so it is necessary to destroy the domain afterwards,
whether the test succeeded or failed.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
emellor@leeni.uk.xensource.com [Thu, 15 Dec 2005 13:39:16 +0000 (13:39 +0000)]
Someone seems to have gotten carried away with cut & paste, and then
didn't test.
Signed-off-by: Jim Dykman <dykman@us.ibm.com>
emellor@leeni.uk.xensource.com [Thu, 15 Dec 2005 13:38:16 +0000 (13:38 +0000)]
Put watch on device node only if probe was sucessful.
This fix segfault on netfront when creating more than three network devices on
domU.
Signed-off-by: Murillo F. Bernardes <mfb@br.ibm.com>
djm@kirby.fc.hp.com [Wed, 14 Dec 2005 19:02:37 +0000 (13:02 -0600)]
Mirror changes to x86 un/mask_evtchn
kaf24@firebug.cl.cam.ac.uk [Wed, 14 Dec 2005 18:47:16 +0000 (19:47 +0100)]
Fix the issue when guest OS clear TS bit by mov to cr0 instead of
clts instruction for floating point context save and restore.
clts instruction is already handled in vmx exit handler while
vmx_set_cr0 has not handled it yet.
Signed-off-by: Xiaofeng Ling <xiaofeng.ling@intel.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 14 Dec 2005 18:44:42 +0000 (19:44 +0100)]
LAPIC model is different on x86 and ia64, so make irq-pending
notification arch specific.
Signed-off-by Kevin Tian <Kevin.tian@intel.com>
Signed-off-by Yunhong Jiang <Yunhong.jiang@intel.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 14 Dec 2005 18:41:06 +0000 (19:41 +0100)]
Give the xencons tty driver a proper name.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
kaf24@firebug.cl.cam.ac.uk [Wed, 14 Dec 2005 18:35:38 +0000 (19:35 +0100)]
Prevent new potential features from being exposed to the
guests when not virtualized properly. Guests can attempt to set the
control registers, etc. (and get #GP and panic) if they are aware of the
new feature and the cpuid says it's available.
Signed-off-by: <jun.nakajima@intel.com>
emellor@leeni.uk.xensource.com [Wed, 14 Dec 2005 12:52:02 +0000 (12:52 +0000)]
Fix calls to test-gcc-flag, to match previous changeset.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
emellor@leeni.uk.xensource.com [Wed, 14 Dec 2005 12:22:24 +0000 (12:22 +0000)]
HOSTCC should be used to set HOSTCFLAGS instead of CC.
There is a case where HOSTCC doesn't accept -Wdeclaration-after-statement,
while CC does. It results in a compilation error.
This patch fixes it
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
emellor@leeni.uk.xensource.com [Wed, 14 Dec 2005 12:07:26 +0000 (12:07 +0000)]
Ignore .flc, .patch, .orig, and .rej files, and TAGS in the top level.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
emellor@leeni.uk.xensource.com [Wed, 14 Dec 2005 12:04:40 +0000 (12:04 +0000)]
Merged.
emellor@leeni.uk.xensource.com [Wed, 14 Dec 2005 12:03:40 +0000 (12:03 +0000)]
Added error message if the user attempts to shutdown Domain-0.
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
stekloff@elm3b216.beaverton.ibm.com [Wed, 14 Dec 2005 11:59:19 +0000 (11:59 +0000)]
Adding SKIP() to tests that aren't supported for VMX domains.
Signed-off-by: Dan Stekloff <dsteklof@us.ibm.com>
emellor@leeni.uk.xensource.com [Wed, 14 Dec 2005 11:56:25 +0000 (11:56 +0000)]
Added mkdir -p $XENDOMAINS_SAVE, to ensure that the directory exists before
trying to save into it.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
emellor@leeni.uk.xensource.com [Wed, 14 Dec 2005 11:54:39 +0000 (11:54 +0000)]
Added a stress test for the Xenstore-Python interface layer.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
chris@ubuntu.eng.hq.xensource.com [Wed, 14 Dec 2005 02:11:27 +0000 (19:11 -0700)]
Revert changes slipped in during merge.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
chris@ubuntu.eng.hq.xensource.com [Wed, 14 Dec 2005 02:05:57 +0000 (19:05 -0700)]
merge?
chris@ubuntu.eng.hq.xensource.com [Wed, 14 Dec 2005 02:04:14 +0000 (19:04 -0700)]
Make set_pte_at and set_pte_at_sync macros instead of inline functions.
This avoids having to include sched.h to get a definition of init_mm.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
kaf24@firebug.cl.cam.ac.uk [Wed, 14 Dec 2005 00:25:07 +0000 (01:25 +0100)]
Clarify the BSD-ish licenses for the blk and net front-end drivers so
that it is clear they are fully GPL-compatible and satisfy the free
software definitions in include/linux/module.h.
Signed-off-by: Keir Fraser <keir@xensource.com>
Signed-off-by: Stephen Tweedie <sct@redhat.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 13 Dec 2005 21:12:02 +0000 (22:12 +0100)]
Set kcons index to -1 (i.e., acquire all device indexes).
This reverts part of the previous changeset, which prevented
console=tty0 from doing the obvious thing in a domU guest
(i.e., send output on the virtual console). This is because
the tty index ends up being 1.
I don't think setting the index to other than -1 really
buys us anything anyway. Any other driver that specifies
a name that conflicts with us will almost certainly set their
index to -1, so we cannot avoid conflicts by choosing a
more restrictive (singleton) value.
Signed-off-by: Keir Fraser <keir@xensource.com>
kaf24@firebug.cl.cam.ac.uk [Tue, 13 Dec 2005 21:05:18 +0000 (22:05 +0100)]
Most drivers have their own range of devices they claim and the tty
index is identical to the device file index. For us, the tty index is
always zero regardless of the device file index.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>